#include <iostream>
using namespace std;

class T {
		public:
				virtual T operator+(const T&)=0;
};

class T1: public T {
	private:
			int val;
	public:
		T1(int i):val(i){
		}

		T1 operator+(const T& t){
				const T1& t1= (T1&)(t);
				return t1.val+val;
		}

};

int main () {
		T1 t1(5);
		t1+5;
		return 0;
}
